home *** CD-ROM | disk | FTP | other *** search
/ Acorn Risc Technologies StrongARM CD-ROM / Acorn Risc Technologies StrongARM CD-ROM.iso / ftp / documents / strongarm / fiqs next >
Encoding:
Text File  |  1996-07-31  |  1.7 KB  |  51 lines

  1. Use of FIQs
  2. ===========
  3.  
  4. FIQ usage is now deprecated. When you modify the FIQ vector, you will need
  5. to synchronise the code. However, as FIQ routines cannot call SWIs you are
  6. unable to call OS_SynchroniseCodeAreas. For StrongARM compatibility we
  7. recommend you use the FIQ vector as follows:
  8.  
  9.      0000001C: LDR PC,&00000020
  10.      00000020: <address of FIQ handler>
  11.      
  12. and use the following code to do the synchronise manually when you write
  13. the instruction at location &1C (no synchronise is required when you alter
  14. the address at &20).
  15.  
  16.         .
  17.         <alter FIQ vector>
  18.         .
  19.         MRC    CP15,0,R0,C0,C0           ; get processor ID
  20.         AND    R0,R0,#&F000
  21.         TEQ    R0,#&A000
  22.         BNE    NotStrongARM
  23.         MOV    R0,#&1C           
  24.         MCR    CP15,0,R0,C7,C10,1        ; clean data cache entry for FIQ vector
  25.         MOV    R0,#0
  26.         MCR    CP15,0,R0,C7,C10,4        ; drain write buffer
  27.         MCR    CP15,0,R0,C7,C5           ; flush whole instruction cache
  28.   NotStrongARM
  29.         .
  30.         .
  31.         .
  32.  
  33. If you want to write a complete FIQ handler into locations &1C to &FC, you
  34. should clean each 32-byte data cache line containing written code thus:
  35.  
  36.   replace
  37.         MOV     R0,#&1C
  38.         MCR     CP15,0,R0,C7,C10,1
  39.         
  40.   with
  41.         MOV     R0,#&E0              ; clean complete FIQ area
  42.   01    MCR     CP15,0,R0,C7,C10,1   ; 32 bytes (1 cache line) at a time
  43.         SUBS    R0,R0,#&20
  44.         BGE     %BT01
  45.         
  46. This will usually be slower than the approach recommended above.
  47.  
  48. This is, of course, not a future-proof solution. We recommend that no new
  49. products use FIQ code. If you feel you have a pressing need to use FIQs,
  50. contact ART Developer Support for advice.
  51.